1
루비 코드 패키징: 젬 생태계
AI035Lesson 9
00:00

그리고 RubyGems 생태계는 전통적인 라이브러리 관리에서 발생하는 혼란스러운 '의존성 혼란'에 대한 루비의 대답입니다. 공유된 글로벌 디렉터리에서 파일을 덮어쓰는 대신, RubyGems는 구조적 격리입니다.

1. 런타임 마법

표준 라이브러리와 달리, 각 젬의 버전은 자체적으로 완전한 디렉터리 안에 존재합니다. 여러분이 gem '이름', '버전'를 호출하면, RubyGems는 '런타임 마법'을 수행합니다: 해당 특정 젬의 lib 폴더를 $LOAD_PATH 전역 배열의 앞부분에 동적으로 추가합니다.

BlueCloth 0.0.4BlueCloth 0.5.5$LOAD_PATHgem 'BlueCloth', '>=0.5.5'

2. 해결 및 저장소

일반적인 로컬 설치 가 의존성이 누락되었을 경우 실패할 수 있지만, 원격 설치 (사용하여 --remote)는 중앙 저장소에서 전체 의존성 트리를 자동으로 가져와서, 버전 제약 조건 실행이 시작되기 전에 만족되도록 보장합니다.

main.py
TERMINALbash — 80x24
> Ready. Click "Run" to execute.
>